<?
/*
when you use ct 10 api

like

http://play.youku.com/play/get.json?vid=XMTg3NzA5NzcwOA==&ct=10

encrypted_string 6afo2sYwm7Qw55ruZDdK+e2iiD+kPkmJqjHuGKdYmUo=

goes to

04941901721401045d1b8_7985
*/
class youku_ep
{
	function li32($n)
		{	
		$array=array(8520192,131072,-2139095040,-2138963456,8388608,-2147352064,-2147352576,-2139095040,-2147352064,8520192,8519680,-2147483136,-2139094528,8388608,0,-2147352576,131072,-2147483648,8389120,131584,-2138963456,8519680,-2147483136,8389120,-2147483648,512,131584,-2138963968,512,-2139094528,-2138963968,0,0,-2138963456,8389120,-2147352576,8520192,131072,-2147483136,8389120,-2138963968,512,131584,-2139095040,-2147352064,-2147483648,-2139095040,8519680,-2138963456,131584,8519680,-2139094528,8388608,-2147483136,-2147352576,0,131072,8388608,-2139094528,8520192,-2147483648,-2138963968,512,-2147352064,8520192,131072,-2139095040,-2138963456,8388608,-2147352064,-2147352576,-2139095040,-2147352064,8520192,8519680,-2147483136,-2139094528,8388608,0,-2147352576,131072,-2147483648,8389120,131584,-2138963456,8519680,-2147483136,8389120,-2147483648,512,131584,-2138963968,512,-2139094528,-2138963968,0,0,-2138963456,8389120,-2147352576,8520192,131072,-2147483136,8389120,-2138963968,512,131584,-2139095040,-2147352064,-2147483648,-2139095040,8519680,-2138963456,131584,8519680,-2139094528,8388608,-2147483136,-2147352576,0,131072,8388608,-2139094528,8520192,-2147483648,-2138963968,512,-2147352064,8520192,131072,-2139095040,-2138963456,8388608,-2147352064,-2147352576,-2139095040,-2147352064,8520192,8519680,-2147483136,-2139094528,8388608,0,-2147352576,131072,-2147483648,8389120,131584,-2138963456,8519680,-2147483136,8389120,-2147483648,512,131584,-2138963968,512,-2139094528,-2138963968,0,0,-2138963456,8389120,-2147352576,8520192,131072,-2147483136,8389120,-2138963968,512,131584,-2139095040,-2147352064,-2147483648,-2139095040,8519680,-2138963456,131584,8519680,-2139094528,8388608,-2147483136,-2147352576,0,131072,8388608,-2139094528,8520192,-2147483648,-2138963968,512,-2147352064,8520192,131072,-2139095040,-2138963456,8388608,-2147352064,-2147352576,-2139095040,-2147352064,8520192,8519680,-2147483136,-2139094528,8388608,0,-2147352576,131072,-2147483648,8389120,131584,-2138963456,8519680,-2147483136,8389120,-2147483648,512,131584,-2138963968,512,-2139094528,-2138963968,0,0,-2138963456,8389120,-2147352576,8520192,131072,-2147483136,8389120,-2138963968,512,131584,-2139095040,-2147352064,-2147483648,-2139095040,8519680,-2138963456,131584,8519680,-2139094528,8388608,-2147483136,-2147352576,0,131072,8388608,-2139094528,8520192,-2147483648,-2138963968,512,-2147352064,268705796,0,270336,268697600,268435460,8196,268443648,270336,8192,268697604,4,268443648,262148,268705792,268697600,4,262144,268443652,268697604,8192,270340,268435456,0,262148,268443652,270340,268705792,268435460,268435456,262144,8196,268705796,262148,268705792,268443648,270340,268705796,262148,268435460,0,268435456,8196,262144,268697604,8192,268435456,270340,268443652,268705792,8192,0,268435460,4,268705796,270336,268697600,268697604,262144,8196,268443648,268443652,4,268697600,270336,268705796,0,270336,268697600,268435460,8196,268443648,270336,8192,268697604,4,268443648,262148,268705792,268697600,4,262144,268443652,268697604,8192,270340,268435456,0,262148,268443652,270340,268705792,268435460,268435456,262144,8196,268705796,262148,268705792,268443648,270340,268705796,262148,268435460,0,268435456,8196,262144,268697604,8192,268435456,270340,268443652,268705792,8192,0,268435460,4,268705796,270336,268697600,268697604,262144,8196,268443648,268443652,4,268697600,270336,268705796,0,270336,268697600,268435460,8196,268443648,270336,8192,268697604,4,268443648,262148,268705792,268697600,4,262144,268443652,268697604,8192,270340,268435456,0,262148,268443652,270340,268705792,268435460,268435456,262144,8196,268705796,262148,268705792,268443648,270340,268705796,262148,268435460,0,268435456,8196,262144,268697604,8192,268435456,270340,268443652,268705792,8192,0,268435460,4,268705796,270336,268697600,268697604,262144,8196,268443648,268443652,4,268697600,270336,268705796,0,270336,268697600,268435460,8196,268443648,270336,8192,268697604,4,268443648,262148,268705792,268697600,4,262144,268443652,268697604,8192,270340,268435456,0,262148,268443652,270340,268705792,268435460,268435456,262144,8196,268705796,262148,268705792,268443648,270340,268705796,262148,268435460,0,268435456,8196,262144,268697604,8192,268435456,270340,268443652,268705792,8192,0,268435460,4,268705796,270336,268697600,268697604,262144,8196,268443648,268443652,4,268697600,270336,1090519040,16842816,64,1090519104,1073807360,16777216,1090519104,65600,16777280,65536,16842752,1073741824,1090584640,1073741888,1073741824,1090584576,0,1073807360,16842816,64,1073741888,1090584640,65536,1090519040,1090584576,16777280,1073807424,16842752,65600,0,16777216,1073807424,16842816,64,1073741824,65536,1073741888,1073807360,16842752,1090519104,0,16842816,65600,1090584576,1073807360,16777216,1090584640,1073741824,1073807424,1090519040,16777216,1090584640,65536,16777280,1090519104,65600,16777280,0,1090584576,1073741888,1090519040,1073807424,64,16842752,1090519040,16842816,64,1090519104,1073807360,16777216,1090519104,65600,16777280,65536,16842752,1073741824,1090584640,1073741888,1073741824,1090584576,0,1073807360,16842816,64,1073741888,1090584640,65536,1090519040,1090584576,16777280,1073807424,16842752,65600,0,16777216,1073807424,16842816,64,1073741824,65536,1073741888,1073807360,16842752,1090519104,0,16842816,65600,1090584576,1073807360,16777216,1090584640,1073741824,1073807424,1090519040,16777216,1090584640,65536,16777280,1090519104,65600,16777280,0,1090584576,1073741888,1090519040,1073807424,64,16842752,1090519040,16842816,64,1090519104,1073807360,16777216,1090519104,65600,16777280,65536,16842752,1073741824,1090584640,1073741888,1073741824,1090584576,0,1073807360,16842816,64,1073741888,1090584640,65536,1090519040,1090584576,16777280,1073807424,16842752,65600,0,16777216,1073807424,16842816,64,1073741824,65536,1073741888,1073807360,16842752,1090519104,0,16842816,65600,1090584576,1073807360,16777216,1090584640,1073741824,1073807424,1090519040,16777216,1090584640,65536,16777280,1090519104,65600,16777280,0,1090584576,1073741888,1090519040,1073807424,64,16842752,1090519040,16842816,64,1090519104,1073807360,16777216,1090519104,65600,16777280,65536,16842752,1073741824,1090584640,1073741888,1073741824,1090584576,0,1073807360,16842816,64,1073741888,1090584640,65536,1090519040,1090584576,16777280,1073807424,16842752,65600,0,16777216,1073807424,16842816,64,1073741824,65536,1073741888,1073807360,16842752,1090519104,0,16842816,65600,1090584576,1073807360,16777216,1090584640,1073741824,1073807424,1090519040,16777216,1090584640,65536,16777280,1090519104,65600,16777280,0,1090584576,1073741888,1090519040,1073807424,64,16842752,1049602,67109888,2,68158466,0,68157440,67109890,1048578,68158464,67108866,67108864,1026,67108866,1049602,1048576,67108864,68157442,1049600,1024,2,1049600,67109890,68157440,1024,1026,0,1048578,68158464,67109888,68157442,68158466,1048576,68157442,1026,1048576,67108866,1049600,67109888,2,68157440,67109890,0,1024,1048578,0,68157442,68158464,1024,67108864,68158466,1049602,1048576,68158466,2,67109888,1049602,1048578,1049600,68157440,67109890,1026,67108864,67108866,68158464,1049602,67109888,2,68158466,0,68157440,67109890,1048578,68158464,67108866,67108864,1026,67108866,1049602,1048576,67108864,68157442,1049600,1024,2,1049600,67109890,68157440,1024,1026,0,1048578,68158464,67109888,68157442,68158466,1048576,68157442,1026,1048576,67108866,1049600,67109888,2,68157440,67109890,0,1024,1048578,0,68157442,68158464,1024,67108864,68158466,1049602,1048576,68158466,2,67109888,1049602,1048578,1049600,68157440,67109890,1026,67108864,67108866,68158464,1049602,67109888,2,68158466,0,68157440,67109890,1048578,68158464,67108866,67108864,1026,67108866,1049602,1048576,67108864,68157442,1049600,1024,2,1049600,67109890,68157440,1024,1026,0,1048578,68158464,67109888,68157442,68158466,1048576,68157442,1026,1048576,67108866,1049600,67109888,2,68157440,67109890,0,1024,1048578,0,68157442,68158464,1024,67108864,68158466,1049602,1048576,68158466,2,67109888,1049602,1048578,1049600,68157440,67109890,1026,67108864,67108866,68158464,1049602,67109888,2,68158466,0,68157440,67109890,1048578,68158464,67108866,67108864,1026,67108866,1049602,1048576,67108864,68157442,1049600,1024,2,1049600,67109890,68157440,1024,1026,0,1048578,68158464,67109888,68157442,68158466,1048576,68157442,1026,1048576,67108866,1049600,67109888,2,68157440,67109890,0,1024,1048578,0,68157442,68158464,1024,67108864,68158466,1049602,1048576,68158466,2,67109888,1049602,1048578,1049600,68157440,67109890,1026,67108864,67108866,68158464,33554432,16384,256,33571080,33570824,33554688,16648,33570816,16384,8,33554440,16640,33554696,33570824,33571072,0,16640,33554432,16392,264,33554688,16648,0,33554440,8,33554696,33571080,16392,33570816,256,264,33571072,33571072,33554696,16392,33570816,16384,8,33554440,33554688,33554432,16640,33571080,0,16648,33554432,256,16392,33554696,256,0,33571080,33570824,33571072,264,16384,16640,33570824,33554688,264,8,16648,33570816,33554440,33554432,16384,256,33571080,33570824,33554688,16648,33570816,16384,8,33554440,16640,33554696,33570824,33571072,0,16640,33554432,16392,264,33554688,16648,0,33554440,8,33554696,33571080,16392,33570816,256,264,33571072,33571072,33554696,16392,33570816,16384,8,33554440,33554688,33554432,16640,33571080,0,16648,33554432,256,16392,33554696,256,0,33571080,33570824,33571072,264,16384,16640,33570824,33554688,264,8,16648,33570816,33554440,33554432,16384,256,33571080,33570824,33554688,16648,33570816,16384,8,33554440,16640,33554696,33570824,33571072,0,16640,33554432,16392,264,33554688,16648,0,33554440,8,33554696,33571080,16392,33570816,256,264,33571072,33571072,33554696,16392,33570816,16384,8,33554440,33554688,33554432,16640,33571080,0,16648,33554432,256,16392,33554696,256,0,33571080,33570824,33571072,264,16384,16640,33570824,33554688,264,8,16648,33570816,33554440,33554432,16384,256,33571080,33570824,33554688,16648,33570816,16384,8,33554440,16640,33554696,33570824,33571072,0,16640,33554432,16392,264,33554688,16648,0,33554440,8,33554696,33571080,16392,33570816,256,264,33571072,33571072,33554696,16392,33570816,16384,8,33554440,33554688,33554432,16640,33571080,0,16648,33554432,256,16392,33554696,256,0,33571080,33570824,33571072,264,16384,16640,33570824,33554688,264,8,16648,33570816,33554440,536870928,524304,0,537397248,524304,2048,536872976,524288,2064,537397264,526336,536870912,536872960,536870928,537395200,526352,524288,536872976,537395216,0,2048,16,537397248,537395216,537397264,537395200,536870912,2064,16,526336,526352,536872960,2064,536870912,536872960,526352,537397248,524304,0,536872960,536870912,2048,537395216,524288,524304,537397264,526336,16,537397264,526336,524288,536872976,536870928,537395200,526352,0,2048,536870928,536872976,537397248,537395200,2064,16,537395216,536870928,524304,0,537397248,524304,2048,536872976,524288,2064,537397264,526336,536870912,536872960,536870928,537395200,526352,524288,536872976,537395216,0,2048,16,537397248,537395216,537397264,537395200,536870912,2064,16,526336,526352,536872960,2064,536870912,536872960,526352,537397248,524304,0,536872960,536870912,2048,537395216,524288,524304,537397264,526336,16,537397264,526336,524288,536872976,536870928,537395200,526352,0,2048,536870928,536872976,537397248,537395200,2064,16,537395216,536870928,524304,0,537397248,524304,2048,536872976,524288,2064,537397264,526336,536870912,536872960,536870928,537395200,526352,524288,536872976,537395216,0,2048,16,537397248,537395216,537397264,537395200,536870912,2064,16,526336,526352,536872960,2064,536870912,536872960,526352,537397248,524304,0,536872960,536870912,2048,537395216,524288,524304,537397264,526336,16,537397264,526336,524288,536872976,536870928,537395200,526352,0,2048,536870928,536872976,537397248,537395200,2064,16,537395216,536870928,524304,0,537397248,524304,2048,536872976,524288,2064,537397264,526336,536870912,536872960,536870928,537395200,526352,524288,536872976,537395216,0,2048,16,537397248,537395216,537397264,537395200,536870912,2064,16,526336,526352,536872960,2064,536870912,536872960,526352,537397248,524304,0,536872960,536870912,2048,537395216,524288,524304,537397264,526336,16,537397264,526336,524288,536872976,536870928,537395200,526352,0,2048,536870928,536872976,537397248,537395200,2064,16,537395216,4096,128,4194432,4194305,4198529,4097,4224,0,4194304,4194433,129,4198400,1,4198528,4198400,129,4194433,4096,4097,4198529,0,4194432,4194305,4224,4198401,4225,4198528,1,4225,4198401,128,4194304,4225,4198400,4198401,129,4096,128,4194304,4198401,4194433,4225,4224,0,128,4194305,1,4194432,0,4194433,4194432,4224,129,4096,4198529,4194304,4198528,1,4097,4198529,4194305,4198528,4198400,4097,4096,128,4194432,4194305,4198529,4097,4224,0,4194304,4194433,129,4198400,1,4198528,4198400,129,4194433,4096,4097,4198529,0,4194432,4194305,4224,4198401,4225,4198528,1,4225,4198401,128,4194304,4225,4198400,4198401,129,4096,128,4194304,4198401,4194433,4225,4224,0,128,4194305,1,4194432,0,4194433,4194432,4224,129,4096,4198529,4194304,4198528,1,4097,4198529,4194305,4198528,4198400,4097,4096,128,4194432,4194305,4198529,4097,4224,0,4194304,4194433,129,4198400,1,4198528,4198400,129,4194433,4096,4097,4198529,0,4194432,4194305,4224,4198401,4225,4198528,1,4225,4198401,128,4194304,4225,4198400,4198401,129,4096,128,4194304,4198401,4194433,4225,4224,0,128,4194305,1,4194432,0,4194433,4194432,4224,129,4096,4198529,4194304,4198528,1,4097,4198529,4194305,4198528,4198400,4097,4096,128,4194432,4194305,4198529,4097,4224,0,4194304,4194433,129,4198400,1,4198528,4198400,129,4194433,4096,4097,4198529,0,4194432,4194305,4224,4198401,4225,4198528,1,4225,4198401,128,4194304,4225,4198400,4198401,129,4096,128,4194304,4198401,4194433,4225,4224,0,128,4194305,1,4194432,0,4194433,4194432,4224,129,4096,4198529,4194304,4198528,1,4097,4198529,4194305,4198528,4198400,4097,136314912,136347648,32800,0,134250496,2097184,136314880,136347680,32,134217728,2129920,32800,2129952,134250528,134217760,136314880,32768,2129952,2097184,134250496,136347680,134217760,0,2129920,134217728,2097152,134250528,136314912,2097152,32768,136347648,32,2097152,32768,134217760,136347680,32800,134217728,0,2129920,136314912,134250528,134250496,2097184,136347648,32,2097184,134250496,136347680,2097152,136314880,134217760,2129920,32800,134250528,136314880,32,136347648,2129952,0,134217728,136314912,32768,2129952,136314912,136347648,32800,0,134250496,2097184,136314880,136347680,32,134217728,2129920,32800,2129952,134250528,134217760,136314880,32768,2129952,2097184,134250496,136347680,134217760,0,2129920,134217728,2097152,134250528,136314912,2097152,32768,136347648,32,2097152,32768,134217760,136347680,32800,134217728,0,2129920,136314912,134250528,134250496,2097184,136347648,32,2097184,134250496,136347680,2097152,136314880,134217760,2129920,32800,134250528,136314880,32,136347648,2129952,0,134217728,136314912,32768,2129952,136314912,136347648,32800,0,134250496,2097184,136314880,136347680,32,134217728,2129920,32800,2129952,134250528,134217760,136314880,32768,2129952,2097184,134250496,136347680,134217760,0,2129920,134217728,2097152,134250528,136314912,2097152,32768,136347648,32,2097152,32768,134217760,136347680,32800,134217728,0,2129920,136314912,134250528,134250496,2097184,136347648,32,2097184,134250496,136347680,2097152,136314880,134217760,2129920,32800,134250528,136314880,32,136347648,2129952,0,134217728,136314912,32768,2129952,136314912,136347648,32800,0,134250496,2097184,136314880,136347680,32,134217728,2129920,32800,2129952,134250528,134217760,136314880,32768,2129952,2097184,134250496,136347680,134217760,0,2129920,134217728,2097152,134250528,136314912,2097152,32768,136347648,32,2097152,32768,134217760,136347680,32800,134217728,0,2129920,136314912,134250528,134250496,2097184,136347648,32,2097184,134250496,136347680,2097152,136314880,134217760,2129920,32800,134250528,136314880,32,136347648,2129952,0,134217728,136314912,32768,2129952,16842752,16843009,16843008,65793,0,16,536870912,536870928,65536,65552,536936448,536936464,2048,2064,536872960,536872976,67584,67600,536938496,536938512,32,48,536870944,536870960,65568,65584,536936480,536936496,2080,2096,536872992,536873008,67616,67632,536938528,536938544,524288,524304,537395200,537395216,589824,589840,537460736,537460752,526336,526352,537397248,537397264,591872,591888,537462784,537462800,524320,524336,537395232,537395248,589856,589872,537460768,537460784,526368,526384,537397280,537397296,591904,591920,537462816,537462832,0,2097152,4,2097156,1024,2098176,1028,2098180,268435456,270532608,268435460,270532612,268436480,270533632,268436484,270533636,1,2097153,5,2097157,1025,2098177,1029,2098181,268435457,270532609,268435461,270532613,268436481,270533633,268436485,270533637,262144,2359296,262148,2359300,263168,2360320,263172,2360324,268697600,270794752,268697604,270794756,268698624,270795776,268698628,270795780,262145,2359297,262149,2359301,263169,2360321,263173,2360325,268697601,270794753,268697605,270794757,268698625,270795777,268698629,270795781,0,2,8,10,512,514,520,522,134217728,134217730,134217736,134217738,134218240,134218242,134218248,134218250,1048576,1048578,1048584,1048586,1049088,1049090,1049096,1049098,135266304,135266306,135266312,135266314,135266816,135266818,135266824,135266826,256,258,264,266,768,770,776,778,134217984,134217986,134217992,134217994,134218496,134218498,134218504,134218506,1048832,1048834,1048840,1048842,1049344,1049346,1049352,1049354,135266560,135266562,135266568,135266570,135267072,135267074,135267080,135267082,0,16777216,4096,16781312,67108864,83886080,67112960,83890176,131072,16908288,135168,16912384,67239936,84017152,67244032,84021248,33554432,50331648,33558528,50335744,100663296,117440512,100667392,117444608,33685504,50462720,33689600,50466816,100794368,117571584,100798464,117575680,8192,16785408,12288,16789504,67117056,83894272,67121152,83898368,139264,16916480,143360,16920576,67248128,84025344,67252224,84029440,33562624,50339840,33566720,50343936,100671488,117448704,100675584,117452800,33693696,50470912,33697792,50475008,100802560,117579776,100806656,117583872,0,268435456,65536,268500992,4,268435460,65540,268500996,536870912,805306368,536936448,805371904,536870916,805306372,536936452,805371908,1048576,269484032,1114112,269549568,1048580,269484036,1114116,269549572,537919488,806354944,537985024,806420480,537919492,806354948,537985028,806420484,4096,268439552,69632,268505088,4100,268439556,69636,268505092,536875008,805310464,536940544,805376000,536875012,805310468,536940548,805376004,1052672,269488128,1118208,269553664,1052676,269488132,1118212,269553668,537923584,806359040,537989120,806424576,537923588,806359044,537989124,806424580,0,8,256,264,1024,1032,1280,1288,131072,131080,131328,131336,132096,132104,132352,132360,1,9,257,265,1025,1033,1281,1289,131073,131081,131329,131337,132097,132105,132353,132361,33554432,33554440,33554688,33554696,33555456,33555464,33555712,33555720,33685504,33685512,33685760,33685768,33686528,33686536,33686784,33686792,33554433,33554441,33554689,33554697,33555457,33555465,33555713,33555721,33685505,33685513,33685761,33685769,33686529,33686537,33686785,33686793,0,524288,16777216,17301504,16,524304,16777232,17301520,2097152,2621440,18874368,19398656,2097168,2621456,18874384,19398672,512,524800,16777728,17302016,528,524816,16777744,17302032,2097664,2621952,18874880,19399168,2097680,2621968,18874896,19399184,67108864,67633152,83886080,84410368,67108880,67633168,83886096,84410384,69206016,69730304,85983232,86507520,69206032,69730320,85983248,86507536,67109376,67633664,83886592,84410880,67109392,67633680,83886608,84410896,69206528,69730816,85983744,86508032,69206544,69730832,85983760,86508048,0,8192,134217728,134225920,32,8224,134217760,134225952,2048,10240,134219776,134227968,2080,10272,134219808,134228000,262144,270336,134479872,134488064,262176,270368,134479904,134488096,264192,272384,134481920,134490112,264224,272416,134481952,134490144,2,8194,134217730,134225922,34,8226,134217762,134225954,2050,10242,134219778,134227970,2082,10274,134219810,134228002,262146,270338,134479874,134488066,262178,270370,134479906,134488098,264194,272386,134481922,134490114,264226,272418,134481954,134490146,1446204225,2035575905,1227646320,2035577966,1879074160,1953067887,7237481,1935764582,1953836648,7564393,1702132034,1634890305,121,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1416787027,6647929,2016555045,1634231040,1399154542,979729001,1446204225,2035575905,1680631152,1685021541,1396783717,1818318387,1701869908,1952805676,1702521171,861094202,1416388950,744845433,1400137063,979729001,1446204225,2035575905,1627415920,1953853230,1380275200,1851866445,1275095411,1028083265,1432317541,1414868563,3681606,1,1068551,0,1068557,1068567);	
		return $array[($n-1058084)/4];	
		}	

	function _rshift($integer, $n)
		{		
		if ($n==0) return $integer;

	   if (0xffffffff < $integer || -0xffffffff > $integer)         	
	       		$integer = fmod($integer, 0xffffffff + 1);

	    if (0x7fffffff < $integer)
			      $integer -= 0xffffffff + 1.0;
	    elseif (-0x80000000 > $integer)
			      $integer += 0xffffffff + 1.0;

		if (0 > $integer)
			{
			$integer &= 0x7fffffff;         
			$integer >>= $n;                   
			$integer |= 1 << (31 - $n); 
			}
		else    $integer >>= $n;
		
	  return $integer;
	  }

function getSize($encrypted_String)
	{
	$decrypted=array();
		      
	$t=array_values(unpack("C*",base64_decode($encrypted_String)));
	foreach ($t as &$i) $i=sprintf("%02x",$i);
	
	for ($w=0;$w<sizeof($t);$w+=8)
		{
		$puntero1 = array_shift(unpack("L",pack("H*",implode(array_slice($t,$w,4)))));
		$puntero2 = array_shift(unpack("L",pack("H*",implode(array_slice($t,$w+4,4)))));
				
		$i13 = 1058084; 
		
		$puntero2 = $puntero2 << 28 | $this->_rshift($puntero2 , 4);	
		$i16 = ($puntero2 ^ $puntero1) & 0xf0f0f0f;	
		$puntero2^= $i16;
		
		$puntero2 = $puntero2 << 20 | $this->_rshift($puntero2 , 12);	
		$i16^= $puntero1;	
		$puntero1 = ($i16 ^ $puntero2) & -65536;	
		$puntero2^= $puntero1;
		
		$puntero2 = $puntero2 << 14 | $this->_rshift($puntero2 , 18);	
		$i16^= $puntero1;
		$puntero1 = ($puntero2 ^ $i16) & 0x33333333;	
		$puntero2^= $puntero1;
		
		$puntero2 = $puntero2 << 10 | $this->_rshift($puntero2 , 22);	
		$i16^= $puntero1;
		$puntero1 = ($i16 ^ $puntero2) & -16711936;	
		$puntero2^= $puntero1;
		
		$puntero2 = $puntero2 << 23 | $this->_rshift($puntero2 , 9);	
		$i16^= $puntero1;
		$puntero1 = ($puntero2 ^ $i16) & 0x55555555;
		
		$i16^= $puntero1;
		$i16 = $i16 << 1| $this->_rshift($i16 , 31);
		
		$i18 = $this->_rshift($i16 , 4);
		$i19 = $i16 << 28;	
		$i20 = 673776398;
		$i21 = 2099250;	
		$i18 = $i19 | $i18;$i19 = $i20 ^ $i16;$i18 = $i18 ^ $i21;
		$i20 = $this->_rshift($i19 , 8);
		$i21 = $i18 & 255;$i22 = $i19 & 255;
		$i23 = $this->_rshift($i18 , 8);
		$i20 = $i20 & 255;$i22 = $i22 << 2;$i21 = $i21 << 2;$i24 = $i13 + 1024;
		$i25 = $this->_rshift($i19 , 16);
		$i23 = $i23 & 255;$i20 = $i20 << 2;$i26 = $i13 + 2048;$i21 = $i24 + $i21;$i22 = $i13 + $i22;
		$i27 = $this->_rshift($i18 , 16);
		$i25 = $i25 & 255;
		
		$i22 = $this->li32($i22);
		$i21 = $this->li32($i21);
		
		$i23 = $i23 << 2;$i28 = $i13 + 3072;$i20 = $i26 + $i20;$i27 = $i27 & 255;
		
		$i20 = $this->li32($i20);
		
		$i21 = $i22 | $i21;
		$i22 = $i25 << 2;
		$i25 = $i13 + 0x1000;
		$i23 = $i28 + $i23;
		$i19 = $i19 & -16777216;
		
		$i23 = $this->li32($i23);  
		
		$i20 = $i21 | $i20;
		$i21 = $i27 << 2;
		$i27 = $i13 + 5120;
		$i22 = $i25 + $i22;
		$i18 = $i18 & -16777216;
		
		$i22 = $this->li32($i22);
		
		$i20 = $i20 | $i23;
		$i19 = $this->_rshift($i19 , 22);
		$i23 = $i13 + 6144;
		$i21 = $i27 + $i21;
		
		$i21 = $this->li32($i21);
		
		$i20 = $i20 | $i22;
		$i18 = $this->_rshift($i18 , 22);
		$i22 = $i13 + 7168;
		$i19 = $i23 + $i19;	
		$puntero2 = $puntero2 ^ $puntero1;
		
		$puntero1 = $this->li32($i19);
		
		$i19 = $i20 | $i21;
		$i18 = $i22 + $i18;
		
		$i18 = $this->li32($i18);
		
		$puntero1 = $i19 | $puntero1;
		$i19 = $this->_rshift($puntero2 , 30);
		$puntero2 = $puntero2 << 2;
		$puntero1 = $puntero1 | $i18;
		$puntero2 = $puntero2 | $i19;
		$puntero2 = $puntero1 ^ $puntero2;
		$puntero1 = $this->_rshift($puntero2 , 4);
		$i18 = $puntero2 << 28;	
		$i19 = 236984092;
		$i20 = 301991952;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $puntero2;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$i16 = $puntero1 ^ $i16;
		$puntero1 = $this->_rshift($i16 , 4);
		$i18 = $i16 << 28;	
		$i19 = 151326985;
		$i20 = 268901395; 	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $i16;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$puntero2 = $puntero1 ^ $puntero2;
		$puntero1 = $this->_rshift($puntero2 , 4);
		$i18 = $puntero2 << 28;	
		$i19 = 537137464;
		$i20 = 588326150;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $puntero2;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$i16 = $puntero1 ^ $i16;
		$puntero1 = $this->_rshift($i16 , 4);
		$i18 = $i16 << 28;	
		$i19 = 287315994;
		$i20 = 540550659;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $i16;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$puntero2 = $puntero1 ^ $puntero2;
		$puntero1 = $this->_rshift($puntero2 , 4);
		$i18 = $puntero2 << 28;	
		$i19 = 270015024;
		$i20 = 486550539;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $puntero2;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$i16 = $puntero1 ^ $i16;
		$puntero1 = $this->_rshift($i16 , 4);
		$i18 = $i16 << 28;	
		$i19 = 101591092;
		$i20 = 136323611;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $i16;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);	
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$puntero2 = $puntero1 ^ $puntero2;
		$puntero1 = $this->_rshift($puntero2 , 4);
		$i18 = $puntero2 << 28;		
		$i19 = 67184936;
		$i20 = 68563497;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $puntero2;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$i16 = $puntero1 ^ $i16;
		$puntero1 = $this->_rshift($i16 , 4);
		$i18 = $i16 << 28;	
		$i19 = 337848365;
		$i20 = 33948201;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $i16;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$puntero2 = $puntero1 ^ $puntero2;
		$puntero1 = $this->_rshift($puntero2 , 4);
		$i18 = $puntero2 << 28;	
		$i19 = 553727012;
		$i20 = 436213544;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $puntero2;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$i16 = $puntero1 ^ $i16;
		$puntero1 = $this->_rshift($i16 , 4);
		$i18 = $i16 << 28;	
		$i19 = 153363477;
		$i20 = 17306150;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $i16;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$puntero2 = $puntero1 ^ $puntero2;
		$puntero1 = $this->_rshift($puntero2 , 4);
		$i18 = $puntero2 << 28;	
		$i19 = 1049607;
		$i20 = 289093925;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $puntero2;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21); 
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$i16 = $puntero1 ^ $i16;
		$puntero1 = $this->_rshift($i16 , 4);
		$i18 = $i16 << 28;	
		$i19 = 34868775;
		$i20 = 639635716;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $i16;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$puntero2 = $puntero1 ^ $puntero2;
		$puntero1 = $this->_rshift($puntero2 , 4);
		$i18 = $puntero2 << 28;	
		$i19 = 319422987;
		$i20 = 68426524;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $puntero2;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		$puntero1 = $this->li32($puntero1);
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$i16 = $puntero1 ^ $i16;
		$puntero1 = $this->_rshift($i16 , 4);
		$i18 = $i16 << 28;	
		$i19 = 604123906;
		$i20 = 151259412;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $i16;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i21 = $i13 + $i21;
		$i31 = $this->_rshift($puntero1 , 16);
		$i30 = $i30 & 255;
		$i29 = $i29 << 2;
		
		$i21 = $this->li32($i21);
		$i20 = $this->li32($i20);
		
		$i19 = $i26 + $i19;
		$i31 = $i31 & 255;
		$i30 = $i30 << 2;
		
		$i19 = $this->li32($i19);
		
		$i20 = $i21 | $i20;
		$i21 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i29 = $i31 << 2;
		
		$i21 = $this->li32($i21);
		
		$i19 = $i20 | $i19;
		$i20 = $i25 + $i30;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i20 = $this->li32($i20);
		
		$i19 = $i19 | $i21;
		$i21 = $i27 + $i29;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i21 = $this->li32($i21);
		
		$i19 = $i19 | $i20;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i19 = $i19 | $i21;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i18 = $i19 | $i18;
		$puntero1 = $i18 | $puntero1;
		$puntero2 = $puntero1 ^ $puntero2;
		$puntero1 = $this->_rshift($puntero2 , 4);
		$i18 = $puntero2 << 28;	
		$i19 = 540672778;
		$i20 = 134352176;	
		$puntero1 = $i18 | $puntero1;
		$i18 = $i19 ^ $puntero2;
		$puntero1 = $puntero1 ^ $i20;
		$i19 = $this->_rshift($i18 , 8);
		$i20 = $puntero1 & 255;
		$i21 = $i18 & 255;
		$i29 = $this->_rshift($puntero1 , 8);
		$i19 = $i19 & 255;
		$i20 = $i20 << 2;
		$i21 = $i21 << 2;
		$i30 = $this->_rshift($i18 , 16);
		$i29 = $i29 & 255;
		$i19 = $i19 << 2;
		$i20 = $i24 + $i20;
		$i13 = $i13 + $i21;
		$i21 = $this->_rshift($puntero1 , 16);
		$i24 = $i30 & 255;
		$i29 = $i29 << 2;
		$i13 = $this->li32($i13);
		$i20 = $this->li32($i20);
		$i19 = $i26 + $i19;
		$i21 = $i21 & 255;
		$i24 = $i24 << 2;
		$i19 = $this->li32($i19);
		$i13 = $i13 | $i20;
		$i20 = $i28 + $i29;
		$i18 = $i18 & -16777216;
		$i21 = $i21 << 2;
		$i20 = $this->li32($i20);
		$i13 = $i13 | $i19;
		$i19 = $i25 + $i24;
		$i18 = $this->_rshift($i18 , 22);
		$puntero1 = $puntero1 & -16777216;
		
		$i19 = $this->li32($i19);
		
		$i13 = $i13 | $i20;
		$i20 = $i27 + $i21;
		$puntero1 = $this->_rshift($puntero1 , 22);
		
		$i20 = $this->li32($i20);
		
		$i13 = $i13 | $i19;
		$i18 = $i23 + $i18;
		
		$i18 = $this->li32($i18);
		
		$i13 = $i13 | $i20;
		$puntero1 = $i22 + $puntero1;
		
		$puntero1 = $this->li32($puntero1);
		
		$i13 = $i13 | $i18;
		$i13 = $i13 | $puntero1;
		$i13 = $i13 ^ $i16;
		$i16 = $this->_rshift($i13 , 2);
		$i13 = $i13 << 30;
		$puntero1 = $this->_rshift($puntero2 , 1);
		$puntero2 = $puntero2 << 31;
		$i13 = $i13 | $i16;
		$puntero2 = $puntero2 | $puntero1;
		$i16 = $i13 ^ $puntero2;
		$i16 = $i16 & 0x55555555;
		$i13 = $i13 ^ $i16;
		$puntero1 = $this->_rshift($i13 , 23);
		$i13 = $i13 << 9;
		$i13 = $i13 | $puntero1;
		$puntero2 = $puntero2 ^ $i16;
		$i16 = $puntero2 ^ $i13;
		$i16 = $i16 & -16711936;
		$i13 = $i13 ^ $i16;
		$puntero1 = $this->_rshift($i13 , 10);
		$i13 = $i13 << 22;
		$i13 = $i13 | $puntero1;
		$puntero2 = $puntero2 ^ $i16;
		$i16 = $i13 ^ $puntero2;
		$i16 = $i16 & 0x33333333;
		$i13 = $i13 ^ $i16;
		$puntero1 = $this->_rshift($i13 , 14);
		$i13 = $i13 << 18;
		$i13 = $i13 | $puntero1;
		$puntero2 = $puntero2 ^ $i16;
		$i16 = $puntero2 ^ $i13;
		$i16 = $i16 & -65536;
		$i13 = $i13 ^ $i16;
		$puntero1 = $this->_rshift($i13 , 20);
		$i13 = $i13 << 12;
		$i13 = $i13 | $puntero1;
		$puntero2 = $puntero2 ^ $i16;
		$i16 = $i13 ^ $puntero2;
		$i16 = $i16 & 0xf0f0f0f;
		$i13 = $i13 ^ $i16;
		
		$puntero2 = $puntero2 ^ $i16;
		
		$i16 = $this->_rshift($i13 , 28);
		$i13 = $i13 << 4;
		$i13 = $i13 | $i16;
		
		$decrypted[]=$puntero2;$decrypted[]=$i13;
		}
	
	foreach ($decrypted as $g)
		foreach (array_values(unpack("C*",pack("L",$g))) as $byte) 
			$d.=chr($byte);
			
		return $d;
	}
}

$a=new youku_ep();echo $a->getSize("0F1hkbfnRcS0c1zeUAD/MbNuWXMb8m805vfpMkNxVVI=");
